package com.pureut.production.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.pureut.production.domain.SpunlaceOutput;
import com.pureut.production.domain.dto.*;
import com.pureut.production.domain.vo.SpunlaceOutputVo;
import com.pureut.production.domain.vo.SpunlacePrintVo;
import com.pureut.production.domain.vo.SpunlaceWasteVo;
import com.pureut.production.domain.vo.StockInVo;

import java.util.List;

/**
 * 水刺产出列表
 * @author: CM
 * @date: 2023/2/20    17:20
 */
public interface SpunlaceOutputService extends IService<SpunlaceOutput> {

    /**
     * 水刺产出列表新增
     * @param spunlaceOutputVo
     * @return
     */
    boolean add(SpunlaceOutputVo spunlaceOutputVo);

    /**
     * 水刺产出回显
     * @param id
     * @return
     */
    SpunlaceOutputViewDto getView(Long id);

    /**
     * 水刺产出打印
     * @param spunlacePrintVo
     * @return
     */
    SpunlaceOrderViewDto addPrint(SpunlacePrintVo spunlacePrintVo) throws Exception;

    /**
     * 水刺产出列表查询
     * @param spunlaceOutputVo
     * @return
     */
    List<SpunlaceOutputDto> getList(SpunlaceOutputVo spunlaceOutputVo);

    /**
     * 扫描入库
     * @param stockInVo
     * @return
     */
    StockInDto stockIn(StockInVo stockInVo) throws Exception;

    /**
     * 废料打印
     * @param spunlaceWasteVo
     * @return
     */
    SpunlaceWasteVo wastePrint(SpunlaceWasteVo spunlaceWasteVo) throws Exception;

    /**
     * 单据完成
     * @param spunlaceOutputVo
     * @return
     */
    boolean finish(SpunlaceOutputVo spunlaceOutputVo);

    /**
     * 水刺产出查看
     * @param id
     * @return
     */
    SpunlaceOrderViewDto getViewInfo(Long id);

    /**
     * 产出统计
     * @param moNumber
     * @return
     */
    List<OutputStaticDto> outputStatic(String moNumber);
}
